#include "mybutton.h"

MyButton::MyButton(QWidget *parent) : QPushButton(parent)
{


}



void MyButton::setImage(const QString &normal, const QString &press, const QString &hover)
{
    //设置图片名称
    m_normal = normal;
    m_hover = hover;
    m_press = press;
    //初始化图片为normal
    p.load(m_normal);
    //进行一个图像的重绘
    update();
}




void MyButton::mousePressEvent(QMouseEvent *e)
{
    //鼠标点击事件
    if(e->button() == Qt::LeftButton)
    {
        //加载点击图像
        p.load(m_press);
        //重绘
        update();
    }
    //还是要调用原来的事件进行响应
    QPushButton::mousePressEvent(e);
}

void MyButton::enterEvent(QEvent *e)
{
    p.load(m_hover);
    update();
    QPushButton::enterEvent(e);
}

void MyButton::leaveEvent(QEvent *e)
{
    p.load(m_normal);
    update();
    QPushButton::leaveEvent(e);
}

void MyButton::mouseReleaseEvent(QMouseEvent *e)
{
    //鼠标点击事件
    if(e->button() == Qt::LeftButton)
    {
        //加载点击图像
        p.load(m_normal);
        //重绘
        update();
    }
    //还是要调用原来的事件进行响应
    QPushButton::mouseReleaseEvent(e);
}

void MyButton::paintEvent(QPaintEvent *e)
{
    (void)e;
    //重绘
    QPainter painter(this);
    painter.drawPixmap(rect(),p);
   // QPushButton::paintEvent(e);
}
